Preface

4

$ command --option value --another-option another-value

output line 1

output line 2

output line 3

[...]

If you fancy some historical information, the dollar sign used for the prompt was apparently first

introduced in Version 7 Unix, released in 1979 by Bell Labs, as that was the first version to be shipped

with the Bourne shell. So much for long-lasting choices!

Discrimination of fruit-labelled products

Mac OS is the Unix-like operating system with the largest desktop user base among programmers, as

many have an Apple notebook as their primary device. I’m not one of them, and I was very surprised

to find out that the shell provided by Mac OS is only partially compatible with the traditional bash

shell provided by Linux distributions. In particular, the core utilities of Mac OS are not the GNU

ones, so many command line options are not present, or different.

As I want to publish this book before I retire, I will go for the simplest solution. I won’t provide

examples or explanations for the Mac OS terminal, I’m sorry. If you are using a Mac, either for

your personal choice or because of some external constraint, you will have to look for some specific

solutions online.

For the time being, I will provide instructions to run a Linux machine in a Docker container, so

everybody can follow the lessons and enjoy the book. Maybe in the future I will provide some

coverage of non-GNU versions of the standard utilities, but now this is too complex a task for me.

Despite the mocking tone, I’m really sorry I can’t provide instructions for every case! The good

news is that, while the single commands have different options the overall concepts are the same, so

reading the book and learning how to use commands, how to find help on them and how to compose

them in scripts will be extremely useful even for Mac OS users.

Why this book comes for free

The first reason I started writing a technical blog was to share with others my discoveries, and to

save them the hassle of going through processes I had already cracked. Moreover, I always enjoy

the fact that explaining something forces me to better understand that topic, and writing requires

even more study to get things clear in my mind, before attempting to introduce other people to the

subject.

Much of what I know comes from personal investigations, but without the work of people who

shared their knowledge for free I would not have been able to make much progress. The Free

Software Movement didn’t start with Internet, and I got a taste of it during the 80s and 90s, but the